package com.zzl.bonds.ticket.exception;

/**
 * 异常号：
 * 头（T_）+ 模块编号（4位，暂时0000补位）+ 异常编号（3位，从001开始），共9位
 * U_开头--》工具类异常，与业务隔离，中间4位用0补位
 *
 * @author szsw
 * @date 2021/12/2 16:21:41
 */
public enum SysExceptionEnum {

    /**
     *
     */
    PROCESS_FEIGN_GET_APPROVAL_AUTH_ERROR                                           ("T_U000001", "从流程中心获取当前登录人操作审批权限错误！"),
    PROCESS_FEIGN_SET_TICKET_HANDLE_ERROR                                           ("T_U000002", "设置票据操作项失败，请检查票据对象中是否包含getHandleList和getHandleList方法！"),
    TICKET_OBJECT_NO_GET_STATUS_METHOD                                              ("T_U000003", "票据对象没有规定的获取票据相关状态的方法！"),
    TICKET_OBJECT_NO_GET_TICKET_STATUS_METHOD                                       ("T_U000004", "票据对象没有规定的获取票据状态的方法！-->getTicketStatus"),
    TICKET_OBJECT_NO_GET_CASH_STATUS_METHOD                                         ("T_U000005", "票据对象没有规定的获取兑付状态的方法！-->getCashStatus"),
    TICKET_OBJECT_NO_GET_FINANCE_STATUS_METHOD                                      ("T_U000006", "票据对象没有规定的获取融资状态的方法！-->getFinanceStatus"),
    TICKET_OBJECT_NO_GET_APPROVE_STATUS_METHOD                                      ("T_U000007", "票据对象没有规定的获取审核状态的方法！-->getApproveStatus"),
    TICKET_OBJECT_NO_GET_SIGN_STATUS_METHOD                                         ("T_U000008", "票据对象没有规定的获取签收状态的方法！-->getSignStatus"),
    TICKET_OBJECT_NO_ID_METHOD_METHOD                                               ("T_U000009", "票据对象没有规定的获取票据id的方法！-->getId"),
    TICKET_OBJECT_NO_GET_TICKET_HANDLE_LIST_METHOD                                  ("T_U000010", "票据对象没有规定的获取票据操作项的方法！-->getHandleList"),
    TICKET_OBJECT_NO_SET_TICKET_HANDLE_LIST_METHOD                                  ("T_U000011", "票据对象没有规定的设置票据操作项的方法！-->setHandleList"),
    TICKET_OBJECT_SET_TICKET_SITUATION_METHOD                                       ("T_U000012", "票据对象没有规定的设置票据处理情况的方法！-->setSituation"),
    TICKET_OBJECT_SET_TICKET_SITUATION_INFO_METHOD                                  ("T_U000013", "票据对象没有规定的设置票据处理情况气泡的方法！-->setSituationInfo"),
    TICKET_OBJECT_SET_TICKET_LOCKED_METHOD                                          ("T_U000014", "票据对象没有规定的设置票据是否锁定的方法！-->setLocked"),
    TICKET_OBJECT_GET_TICKET_LOCKED_METHOD                                          ("T_U000015", "票据对象没有规定的获取票据是否锁定的方法！-->getLocked"),
    TICKET_OBJECT_GET_TICKET_STATUS_VALUE_ERROR                                     ("T_U000016", "票据对象获取票据状态的方法返回了错误的值，需要int或可以转化成int的String！-->getTicketStatus"),
    TICKET_OBJECT_GET_CASH_STATUS_VALUE_ERROR                                       ("T_U000017", "票据对象获取兑付状态的方法返回了错误的值，需要int或可以转化成int的String！-->getCashStatus"),
    TICKET_OBJECT_GET_FINANCE_STATUS_VALUE_ERROR                                    ("T_U000018", "票据对象获取融资状态的方法返回了错误的值，需要int或可以转化成int的String！-->getFinanceStatus"),
    TICKET_OBJECT_GET_APPROVE_STATUS_VALUE_ERROR                                    ("T_U000019", "票据对象获取审核状态的方法返回了错误的值，需要int或可以转化成int的String！-->getApproveStatus"),
    TICKET_OBJECT_GET_SIGN_STATUS_VALUE_ERROR                                       ("T_U000020", "票据对象获取签收状态的方法返回了错误的值，需要int或可以转化成int的String！-->getSignStatus"),
    TICKET_OBJECT_NO_GET_ROLLBACK_STATUS_METHOD                                     ("T_U000021", "票据对象没有规定的获取票据撤回状态的方法！-->getRollbackStatus"),
    TICKET_OBJECT_GET_ROLLBACK_STATUS_VALUE_ERROR                                   ("T_U000022", "票据对象获取撤回状态的方法返回了错误的值，需要int或可以转化成int的String！-->getRollbackStatus"),
    TICKET_OBJECT_SET_TICKET_STYLE_DTO_METHOD                                       ("T_U000023", "票据对象没有规定的设置票据处理情况样式的方法！-->setStyleCode"),
    TICKET_OBJECT_SIGN_STATUS_VALUE_ISNULL                                          ("T_U000024", "票据对象获取签收状态的方法返回了null，说明没有设置签收状态！"),
    TICKET_OBJECT_NO_GET_SIGN_APPROVE_STATUS_METHOD                                 ("T_U000025", "票据对象没有规定的获取签收状态的方法！-->getSignApproveStatus"),
    TICKET_OBJECT_GET_SIGN_APPROVE_STATUS_VALUE_ERROR                               ("T_U000026", "票据对象获取签收状态的方法返回了错误的值，需要int或可以转化成int的String！-->getSignApproveStatus"),
    TICKET_OBJECT_NO_GET_EXCEPTION_STATUS_METHOD                                    ("T_U000027", "票据对象没有规定的获取票据异常状态的方法！！-->getExceptionStatus"),
    TICKET_OBJECT_GET_EXCEPTION_STATUS_VALUE_ERROR                                  ("T_U000028", "票据对象获取异常状态的方法返回了错误的值，需要int或可以转化成int的String！-->getExceptionStatus"),
    TICKET_TRANSFER_NOT_SET_SIGN_STATUS_ERROR                                       ("T_U000029", "转让票据转让方已经审核完毕，但是没有设置签收状态！"),
    TICKET_TRANSFER_NOT_SET_APPROVE_STATUS_AND_SIGN_STATUS_ERROR                    ("T_U000030", "转让票据转让方审核状态和签收状态都没有设置！"),
    TICKET_TRANSFER_NOT_SET_SIGN_APPROVE_STATUS_ERROR                               ("T_U000031", "没有设置转让票据签收审核状态！"),
    TICKET_TRANSFER_NOT_UPDATE_SIGN_STATUS_TO_SIGNED                                ("T_U000032", "转让签收审核通过，但为更新签收状态为已签收！"),
    TICKET_OBJECT_NO_GET_CREATOR_ID_METHOD_METHOD                                   ("T_U000033", "票据对象没有规定的获取票据数据创建人的方法！-->getCreatorId"),
    TICKET_OBJECT_NO_GET_CREATE_TIME_METHOD                                         ("T_U000034", "票据对象没有规定的获取票据数据创建时间的方法！-->getCreateTime"),
    TICKET_FEIGN_GET_CREATOR_NAME_ERROR                                             ("T_U000035", "票据对象没有规定的获取票据数据创建时间的方法！-->userFeign"),
    TICKET_OBJECT_NO_GET_SEND_ENTERPRISE_NAME_METHOD                                ("T_U000036", "票据对象没有规定的获取票据开票方的方法！-->getSendEnterpriseName"),
    TICKET_OBJECT_NO_GET_TRANSFER_ENTERPRISE_NAME_METHOD                            ("T_U000037", "票据对象没有规定的获取票据转让方的方法！-->getTransferEnterpriseName"),
    TICKET_OBJECT_NO_GET_FINANCE_ENTERPRISE_NAME_METHOD                             ("T_U000038", "票据对象没有规定的获取票据融资方的方法！-->getFinanceEnterpriseName"),
    TICKET_OBJECT_NO_GET_TICKET_SITUATION_METHOD                                    ("T_U000039", "票据对象没有规定的获取票据处理状态的方法！-->getSituation"),
    TICKET_OBJECT_NO_GET_TICKET_SITUATION_INFO_METHOD                               ("T_U000040", "票据对象没有规定的获取票据处理状态信息的方法！-->getSituationInfo"),
    TICKET_OBJECT_NO_GET_TICKET_STYLE_DTO_METHOD                                    ("T_U000041", "票据对象没有规定的获取票据处理状态样式的方法！-->setStyleCode"),
    TICKET_OBJECT_APPROVE_STATUS_IS_NULL                                            ("T_U000042", "异常票据对象的审批状态在当前业务中不能为空！"),
    TICKET_OBJECT_NO_GET_EXCEPTION_TYPE_METHOD                                      ("T_U000043", "异常票据对象没有规定的获取异常类型的方法！-->getExceptionType"),
    TICKET_OBJECT_NO_GET_RECEIVE_ENTERPRISE_ID_METHOD                               ("T_U000044", "异常票据对象没有规定的获取签收方id或受让方id的方法！-->getReceiveEnterpriseId"),
    TICKET_OBJECT_EXCEPTION_BOOLEAN_VALUE_NOT_SAME_ERROR                            ("T_U000045", "组审批类型与单条审批类型数据不符！"),
    TICKET_OBJECT_NO_GET_SIGN_TIME_METHOD                                           ("T_U000046", "票据对象没有规定的获取票据签收时间的方法！-->getSignTime"),
    TICKET_OBJECT_NO_GET_UPDATE_TIME_METHOD                                         ("T_U000047", "票据对象没有规定的获取票据数据创建时间的方法！-->getUpdateTime"),
    TICKET_OBJECT_NO_GET_RECEIVE_ENTERPRISE_NAME_METHOD                             ("T_U000048", "票据对象没有规定的获取签收方名称或受让方名称的方法！-->getReceiveEnterpriseName"),
    TICKET_OBJECT_NO_GET_TRANSFEREE_ENTERPRISE_ID_METHOD                            ("T_U000049", "转让票据对象没有规定的获取签收方id或受让方id的方法！-->getTransfereeEnterpriseId"),
    TICKET_OBJECT_NO_GET_TRANSFEREE_ENTERPRISE_NAME_METHOD                          ("T_U000050", "转让票据对象没有规定的获取签收方名称或受让方名称的方法！-->getTransfereeEnterpriseName"),
    TICKET_OBJECT_NO_GET_DISBURSEMENT_DATE_METHOD                                   ("T_U000051", "融资票据对象没有规定的获取放款日期的方法！-->getDisbursementDate"),
    TICKET_OBJECT_NO_GET_WITHDRAW_REASON_METHOD                                     ("T_U000052", "异常票据对象没有规定的获取撤回原因的方法！-->getWithdrawReason"),

    /**
     * 开立申请页面
     */
    TICKET_OPEN_ADD_PARAMS_DRAWER_VERITY                                            ("T_O000001", "开票方保证人不可填写承兑方、开票方、签收方"),
    TICKET_OPEN_ADD_PARAMS_ACCEPTOR_GUARANTOR_VERITY                                ("T_O000002", "承兑方保证人不可填写承兑方、开票方、签收方"),
    TICKET_OPEN_ADD_PARAMS_CREDIT_SURPLUS_AMOUNT_VERITY                             ("T_O000003", "剩余授信额度不足"),
    TICKET_OPEN_ADD_PARAMS_CREDIT_SURPLUS_VERITY                                    ("T_O000004", "当前选择的授信不存在，请重新选择"),
    TICKET_OPEN_ADD_RESULT                                                          ("T_O000005", "保存开立申请失败"),
    TICKET_OPEN_ADD_PARAMS_CREDIT_SUPPLIER_AMOUNT_VERITY                            ("T_O000006", "当前供应商可用开票额度不足"),
    TICKET_SEND_FAIL                                                                ("T_O000007", "发送消息保存失败"),
    TICKET_OPEN_ADD_PARAMS_DATE_VERITY                                              ("T_O000008", "票据兑付日期与开立日期不可超过一年"),
    TICKET_OPEN_ADD_PARAMS_DATE_FAIL_VERITY                                         ("T_O000009", "开立日期不能小于当前时间"),
    TICKET_OPEN_ADD_DATE_FAIL_VERITY                                                ("T_O000010", "兑付日期必须在开立日期之后"),
    TICKET_PROCESS_FAIL_VERITY                                                      ("T_O000011", "审批流程拉起失败"),
    TICKET_OPEN_DRAWER_GUARANTOR_VERITY                                             ("T_O000012", "开票方保证人信息必须同时为空或不为空"),
    TICKET_OPEN_ACCEPTOR_GUARANTOR_VERITY                                           ("T_O000013", "承兑方保证人信息必须同时为空或不为空"),
    TICKET_OPEN_PROCESS_CANCLE                                                      ("T_O000014", "流程撤销失败"),
    TICKET_OPEN_NO_TICKET_FOUND_ERROR                                               ("T_O000015", "没有找到对应的开立票据！"),
    TICKET_OPEN_FEIGN_NOT_FOUND_ENTERPRISE_DATA_ERROR                               ("T_F000016", "没有查询到分公司！"),
    TICKET_OPEN_CREDIT_SUPPLIER_VERITY                                              ("T_F000017", "企业授信不存在！"),
    TICKET_OPEN_EXPIRE_DATE_NULL                                                    ("T_F000018", "日期不能为空！"),
    TICKET_OPEN_EXPIRE_DATE_ERROR                                                    ("T_F000019", "到期日期不能选择周六周日！"),
    /**
     * 开立签收异常
     */
    TICKET_SIGN_OPEN_NO_TICKET_FOUND_ERROR                                          ("T_SO00001", "没有找到对应的开立签收票据！"),

    /**
     * 转让异常
     */
    TICKET_TRANSFER_PROCESS_FAIL_VERITY                                             ("T_T000001", "转让审批流程拉起失败"),
    TICKET_TRANSFER_NO_TICKET_FOUND_ERROR                                           ("T_T000002", "没有找到对应的转让票据！"),
    TICKET_TRANSFER_TICKET_IS_LOCKED                                                ("T_T000003", "转让票据锁定状态，不能操作！"),
    TICKET_TRANSFER_PROCESS_CANCLE                                                  ("T_T000004", "转让审批流程撤销失败！"),
    /**
     * 转让签收异常
     */
    TICKET_SIGN_TRANSFER_NO_TICKET_FOUND_ERROR                                      ("T_ST00001", "没有找到对应的转让签收票据！"),

    /**
     * 融资相关异常
     */
    TICKET_FINANCE_FEIGN_GET_PRODUCT_DATA_ERROR                                     ("T_F000001", "查询金融产品数据失败！"),
    TICKET_FINANCE_FEIGN_NOT_FOUND_PRODUCT_DATA_ERROR                               ("T_F000002", "没有找到金融产品数据！"),
    TICKET_FINANCE_NO_TICKET_FOUND_BY_ID_ERROR                                      ("T_F000003", "没有找到要融资的票据！"),
    TICKET_FINANCE_FINANCIAL_AMOUNT_GREATER_THAN_TICKET_AVAILABLE_AMOUNT_ERROR      ("T_F000004", "融资金额大于票据可用金额！"),
    TICKET_FINANCE_TICKET_IS_LOCKED_ERROR                                           ("T_F000005", "票据锁定，不能融资！"),
    TICKET_FINANCE_TICKET_IS_EXCEPTION_ERROR                                        ("T_F000006", "票据异常，不能融资！"),
    TICKET_FINANCE_TICKET_NO_LONGER_HAVE_ERROR                                      ("T_F000007", "票据已经发生流转，不能融资！"),
    TICKET_FINANCE_NO_FILE_UPLOAD_ERROR                                             ("T_F000008", "没有选择融资相关附件！"),
    TICKET_FINANCE_NO_TICKET_FOUND_ERROR                                            ("T_F000009", "没有找到对应的融资票据！"),
    TICKET_FINANCE_NO_ENTERPRISE_BY_USER_ERROR                                      ("T_F000010", "当前登录用户所属企业不存在！"),
    TICKET_FINANCE_TICKET_IS_LOCKED                                                 ("T_F000011", "融资票据锁定状态，不能操作！"),
    TICKET_FINANCE_TICKET_IS_NOT_FINANCE_EXAMING                                    ("T_F000012", "融资票据已经审核结束，不能撤销申请！"),
    TICKET_FINANCE_PROCESS_CANCLE                                                   ("T_F000013", "融资审批流程撤销失败！"),
    TICKET_FINANCE_FEIGN_GET_INSTITUTY_AND_PRODUCT_DATA_ERROR                       ("T_F000014", "没有查询到金融机构及金融产品！"),
    TICKET_FINANCE_TICKET_IS_CASHING_ERROR                                          ("T_F000015", "票据已兑付或进入等待兑付阶段，不能融资！"),
    TICKET_FINANCE_TICKET_OWNER_IS_CHANGED_ERROR                                    ("T_F000016", "票据已经不属于当前企业，不能融资！"),
    TICKET_FINANCE_FIND_FILE_NAME_ERROR                                             ("T_F000017", "查询附件文件名称失败！"),
    TICKET_FINANCE_CANNOT_FOUND_TICKET                                              ("T_F000018", "没有找到融资票据！"),
    TICKET_FINANCE_FEIGN_NOT_FOUND_INSTITUTY_DATA_ERROR                             ("T_F000019", "没有查询到金融机构！"),
    TICKET_FINANCE_GET_WAITING_PAYMENT_DATE_ERROR                                   ("T_F000020", "预兑付获取时间范围错误！"),

    TICKET_FINANCE_CHECK_BANK_ERROR                                                 ("T_F000021", "入账银行信息填写不正确！"),
    TICKET_FINANCE_CHECK_AMOUNT_ERROR                                               ("T_F000022", "转让金额应不大于凭证金额！"),
    TICKET_FINANCE_CHECK_TICKET_AMOUNT_ERROR                                        ("T_F000023", "转让金额应不大于凭证剩余金额！"),
    TICKET_FINANCE_CHECK_ADVANCE_PAYMENT_ERROR                                      ("T_F000024", "预兑付中的凭证不能进行融资！"),
    TICKET_FINANCE_CHECK_TICKET_STATUS_ERROR                                        ("T_F000025", "当前凭证不是正常持有！"),
    TICKET_FINANCE_TICKET_SAVE_ERROR                                                ("T_F000026", "融资申请单保存失败！"),
    TICKET_FINANCE_TICKET_CHECK_ERROR                                               ("T_F000027", "非待复核状态的融单不能进行融单复核！"),
    TICKET_FINANCE_TICKET_CHECK_SAVE_ERROR                                          ("T_F000028", "融资复核失败！"),
    TICKET_FINANCE_TICKET_SIGN_ERROR                                                ("T_F000029", "非待签署状态的融单不能进行融单签署！"),
    TICKET_FINANCE_TICKET_NOT_FOUND_ERROR                                           ("T_F000030", "融单凭证已被删除！"),
    TICKET_FINANCE_TICKET_NOT_FOUND                                                 ("T_F000031", "融资凭证已不存在，请检查数据！"),
    TICKET_FINANCE_RESULT_NOT_FOUND                                                 ("T_F000032", "获取融单处理结果--》融资申请状态不正确！"),
    TICKET_FINANCE_HANDEL_ERROR                                                     ("T_F000033", "融单票据处理异常！"),
    TICKET_FINANCE_RECEIVABLE_AMOUNT_NOT_FOUND                                      ("T_F000034", "凭证数据不正确，无法查询到应收账款！"),
    TICKET_FINANCE_TYPE_SOURCE_ERROR                                                ("T_F000035", "凭证数据来源不正确！"),
    TICKET_FINANCE_ORDER_SAVE_ERROR                                                 ("T_F000036", "融资订单保存失败！"),
    TICKET_FINANCE_TICKET_APPROVE_SAVE_ERROR                                        ("T_F000037", "融资审批失败！"),
    TICKET_FINANCE_TICKET_APPLICATION_NOT_FOUND                                     ("T_F000038", "融资申请单信息不存在！"),
    TICKET_FINANCE_TICKET_LOAN_ERROR                                                ("T_F000039", "非待放款状态的融单不能进行放款操作！"),
    TICKET_FINANCE_TICKET_UPDATE_ERROR                                              ("T_F000040", "融单修改失败！"),
    TICKET_FINANCE_TICKET_SOURCE_ERROR                                              ("T_F000041", "凭证的数据来源为空，请检查凭证！"),





    /**
     * 异常相关异常
     */
    TICKET_EXCEPTIN_NO_TICKET_FOUND_ERROR                                           ("T_E000001", "没有找到对应的异常票据！"),

    /**
     * 票据审批流程相关异常
     */
    TICKET_PROCESS_NO_GET_APPROVE_TYPE_TICKET_ID_METHOD_FOUND_ERROR                 ("T_P000001", "没有找到对应的获取票据id的方法！"),
    TICKET_PROCESS_GET_APPROVE_TYPE_TICKET_ID_VALUE_ERROR                           ("T_P000002", "获取票据id值错误！"),
    TICKET_PROCESS_NO_SET_APPROVE_TYPE_TICKET_ID_METHOD_FOUND_ERROR                 ("T_P000003", "没有找到对应的设置票据id的方法！"),
    TICKET_PROCESS_STOP_BATCH_APPROVAL_ERROR                                        ("T_P000004", "预兑付批量停止流程失败！"),



    /**
     * 授信相关异常
     */
    TICKET_CREDIT_FINANCE_SAVE_ERROR                                                ("T_C000001", "融资额度保存失败！"),
    TICKET_CREDIT_FINANCE_UPDATE_ERROR                                              ("T_C000002", "融资额度修改失败！"),
    TICKET_CREDIT_FINANCE_AMOUNT_ERROR                                              ("T_C000003", "冻结额度不能为空！"),
    TICKET_CREDIT_FINANCE_CHECK_ERROR                                               ("T_C000004", "授信主体已绑添加前金融机构，不能重复添加！"),
    TICKET_CREDIT_FINANCE_NOT_FOUND_ERROR                                           ("T_C000005", "融资授信不存在或已被删除！"),
    TICKET_CREDIT_FINANCE_AMOUNT_INSUFFICIENT_ERROR                                 ("T_C000005", "融资授信额度不足！"),
    TICKET_CREDIT_FINANCE_DEDUCTION_ERROR                                           ("T_C000006", "融资授信扣减失败！"),





    ;
    private String code;
    private String msg;

    SysExceptionEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
